home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 37 / Commodore_Free_Issue_37_2010_Commodore_Computer_Club.d64 / iv mathfigure < prev    next >
Text File  |  2023-02-26  |  16KB  |  541 lines

  1.  
  2. *************************************
  3.      INTERVIEW WITH "MATHFIGURE"
  4.  Creator of the Commodore 64 hacking
  5.              tool ICU64
  6. *************************************
  7.  
  8. Q. Please introduce yourself to our
  9. readers.
  10.  
  11. Hello, I'm Mathfigure, the creator
  12. of the Commodore 64 hacking tool
  13. ICU64. I am a Physicist from Greece,
  14. and was born in 1976.
  15.  
  16. Q. How did you first start with
  17. computers and what are your earliest
  18. memories?
  19.  
  20. As far as I remember myself my
  21. favourite "toy" was the hammer (the
  22. absolute disassembly tool). I always
  23. want to see inside the devices, to
  24. see how they work; but soon this
  25. interest proved too expensive (even
  26. later, when I discover the
  27. screwdriver!) So I changed my hobby
  28. and started to become an athlete.
  29.  
  30. I first heard about computers in
  31. 1986. I asked my big brother what it
  32. (a computer) is; and he told me
  33. about a machine that looks like TV
  34. but also has a typewriter attached,
  35. via which you could give commands
  36. for what you wanted to see on the
  37. screen. I was fascinated by this
  38. idea: a machine that I could order!
  39. So in January 1988, after begging
  40. our parents daily for about 18
  41. months (I think this is a record!),
  42. the first computer arrived at my
  43. home: a Commodore 128D. Since then I
  44. stuck with computers.
  45.  
  46. I started to play with commands for
  47. graphics and thus I slowly started
  48. to program. I familiarized myself
  49. with the Cartesian Coordinates and
  50. some other aspects of Analytic
  51. Geometry before I learnt anything
  52. about Algebra and Geometry. In
  53. parallel there was also a Commodore
  54. 64, embedded to the C128, capable to
  55. running thousands of games! And I
  56. always wanted to beat a game within
  57. two ways: to finish it and to hack
  58. it. I have made innumerable resets
  59. between the C64 mode and the C128
  60. mode trying to hack some games with
  61. the embedded debugger of the C128.
  62. Briefly, the C128 gave me a
  63. scientific view of the computer that
  64. led me finally to university, but
  65. the C64 was the machine that I
  66. always wanted to hack and that led
  67. me to the ICU64 project.
  68.  
  69. Q. For the people who haven't see it
  70. or heard of it can you tell our
  71. readers about ICU64 for FRODO, what
  72. are the main functions you can do
  73. with the software?
  74.  
  75. The project tries to manipulate the
  76. C64 as a whole (hardware and
  77. software) using the full power of
  78. the PC. The ICU64 is aimed to be a
  79. comprehensive tool for the most
  80. demanding user of the C64:the
  81. hacker. Its aim is to provide
  82. real-time visualizations for every
  83. internal component of the C64, as
  84. well as other combined
  85. visualizations that would make
  86. clearer the operation of the
  87. hardware and the intention of its
  88. software.
  89.  
  90. To achieve this, the software runs
  91. in conjunction with a modified
  92. version of the C64 emulator FRODO
  93. that I call Frodo Redpill. The Frodo
  94. Redpill provides access from outside
  95. to almost every bit and every event
  96. that exists and occurs inside the
  97. C64 virtual machine. Currently, the
  98. main feature of the ICU64 is a handy
  99. view of the address space as a
  100. bitmap which shows the contents of
  101. the memory and every access that is
  102. performed by the CPU and the VIC-II.
  103. When a byte is accessed, a
  104. corresponding pixel is colorized:
  105. red if written, green if read and
  106. blue if executed (as you can imagine
  107. combinations occur fast and often).
  108. You can zoom out to see the whole
  109. memory and easily distinguish data
  110. and code, or zoom in down to the
  111. details where you can see the values
  112. of the individual bytes as
  113. hexadecimal numbers, or zoom further
  114. to see the addresses of the bytes
  115. and the machine language mnemonics,
  116. or even further to see the address
  117. of the code which accessed last that
  118. particular byte. Also, you can edit
  119. the values of the bytes at any time.
  120. All these functions are in real-time
  121. while the C64 is running any
  122. software you like. This "memory
  123. view" is highly dynamic and
  124. interactive, so it may sound
  125. complex, but is really easy and
  126. intuitive to use.
  127.  
  128. Q. So you can see every memory
  129. access colour coded in the emulator
  130. of the Commodore 64 and change the
  131. bytes manually, what other features
  132. does the software have?
  133.  
  134. There is a "graphics view" where the
  135. contents of the RAM are decoded in 4
  136. main ways that the video chip
  137. (VIC-II) supports: sprites, bitmaps,
  138. charsets and text screens. This view
  139. is also editable. For example, you
  140. can draw on the screen and change
  141. the stage of a game on the fly,
  142. giving an immediate way for cheats.
  143. Other features are: the "display
  144. window" that emulates the C64
  145. display and shows the VIC state for
  146. each raster line; a simple
  147. visualization of the SID state; a
  148. CPU instruction logger which tracks
  149. the executed instructions only once,
  150. so you can locate event handlers;
  151. and a "raster view" which is
  152. cycle-exact and visualizes the
  153. activity of the VIC. At any time,
  154. there is also the possibility to
  155. pause the virtual machine and trace
  156. it step-by-step, where the "step"
  157. may be: a frame, a raster line, a
  158. cycle, or a CPU instruction. Most of
  159. these features have lame
  160. implementation or they have only few
  161. functions but they will improve with
  162. time.
  163.  
  164. Q. How long did this software take
  165. to program?
  166.  
  167. Well, I don't count the hours.
  168. Usually I work on the project for a
  169. couple of weeks then test it for
  170. some days with several games and
  171. demos, and then I work again after
  172. several months. In the middle time I
  173. work on other projects (unrelated to
  174. C64).  My first attempt to start the
  175. project was in 2000 but it was
  176. hopeless. In Nov 2006, and after
  177. working for 10 days, I had a stable
  178. version for the VICE and the CCS64
  179. emulators, with the memory view
  180. (only the RAM), the graphics view
  181. (only the sprites), and the display
  182. window. The RAM view was a 256x256
  183. gray scale bitmap and there was a
  184. red highlight for every byte when
  185. its value changed. No zoom and no
  186. memory accesses, nevertheless it was
  187. amazing, so I spend a lot of time
  188. watching many games and demos under
  189. this view. Realizing the potential,
  190. I start to prepare the Frodo
  191. version. Next year, several features
  192. were added (only for Frodo), and in
  193. Dec 2007 the program took form, in
  194. May 2009, it was shown to the public
  195. as a preview. During the summer some
  196. features were removed (as they were
  197. though too lame) and some others
  198. were added, before the first public
  199. release on Sep 2009.
  200.  
  201. Q. Do you have any other features
  202. you would like to add?
  203.  
  204. Many, and really I don't know what
  205. to add first:
  206.  
  207. * visualization of the CPU, VIC-II,
  208.   SID, CIA1 and CIA2;
  209. * unification of the memory view and
  210.   the graphics view in a handy matrix
  211.   editor;
  212. * breakpoints;
  213. * labels;
  214. * auto memory map;
  215. * several different color schemes of
  216.   the memory;
  217. * customizable display;
  218. * more featured "raster view";
  219. * more flexible instruction logger;
  220. * snapshot manager;
  221. * parallel executions on the same
  222.   emulator;
  223. * parallel synchronization of
  224.   multiple emulators.
  225.  
  226. Be aware that some of these are just
  227. ideas, others are closer to
  228. implementation, and toward time
  229. other ideas may appear. Off course
  230. all these need a lot of time and
  231. with my rate so far I don't know how
  232. long will they take.
  233.  
  234. Q. So who would best utilize this
  235. software and who did you think about
  236. when designing the software?
  237.  
  238. Initially it was created for
  239. personal use only, but after the
  240. public demo and its acceptance, I
  241. decided to spread it as far as
  242. possible. The target user is the C64
  243. hacker and my effort is to make his
  244. life easier. And since the hacker is
  245. the user who wants the most,
  246. everybody else should be pleased too
  247. (i.e. developers, self-learners,
  248. gamers). I would be happy if this
  249. tool could be utilized as a
  250. "gamer-to-hacker converter" since a
  251. gamer sees only the tip of the
  252. iceberg when playing a game and
  253. ignores how the game works (the big
  254. part). On the other hand, this
  255. software is not for engineers as it
  256. visualizes only the logical
  257. operation of the computer.
  258.  
  259. Q. Do you have a Blog or Twitter
  260. page people can follow?
  261.  
  262. I have a blog
  263. (http://icu64.blogspot.com ) where I
  264. post anything new that is related to
  265. the project (not much so far) the
  266. blog contains links to download the
  267. files needed to run the software.
  268. I'm also on YouTube
  269. (http://www.youtube.com/mathfigure)
  270. where I have upload some previews
  271. of the software in action.
  272.  
  273. Q. How is the software beta tested
  274. for errors?
  275.  
  276. I test the software myself looking
  277. for major bugs. Minor bugs may be
  278. fixed even after the release. If the
  279. same bug remains from one release to
  280. another, then it should be reported
  281. from the users, because probably I
  282. haven't noticed it.
  283.  
  284. Q. What software did you use to
  285. produce the software?
  286.  
  287. I use the C# of Microsoft Visual
  288. Studio where ICU64 is written and
  289. the C++ where Frodo Redpill is
  290. written. Also, I use the Wolfram
  291. Mathematica to test new features, or
  292. to do more advanced operations,
  293. during reverse engineering of a
  294. game, for example.
  295.  
  296. Q. What do you need to run the
  297. software and is the software
  298. publicly available?
  299.  
  300. The software it is free available
  301. from my blog. The requirements are:
  302. a PC that runs Windows XP or better,
  303. equipment with a mouse that has a
  304. handy wheel for easy pan & zoom. In
  305. the case of Windows XP, the
  306. Microsoft .NET Framework 2.0 or
  307. better must also be installed. There
  308. are two version of ICU64: the Frodo
  309. version which needs the Frodo v4.1
  310. emulator, and the VICE version (with
  311. limited features) which needs the
  312. WinVICE v2.1 emulator.
  313.  
  314. Q. Why implement this for Frodo
  315. first rather than any other emulator
  316.  
  317. Building a prototype you want to
  318. concentrate more on what to do and
  319. not on how to do it. So you want
  320. anything around your project to be
  321. helpful and not a barrier. It was
  322. between Frodo and VICE. Frodo has
  323. elegant source code, and comes with
  324. an excellent article about the
  325. VIC-II from the creator of Frodo,
  326. Christian Bauer. Between the article
  327. and the emulator one could see a
  328. one-on-one map of "what" and "how".
  329. Thus the VIC article serves as a
  330. very good documentation for the
  331. source code making it even easier to
  332. understand. Though the VICE emulator
  333. was superior, its source code wasn't
  334. easy to read and sooner or later
  335. would stop my project. Actually I
  336. started to work with VICE but soon
  337. return to Frodo.
  338.  
  339. Q. If our readers have suggestions
  340. to add extra features would you be
  341. open to their ideas?
  342.  
  343. Any idea is welcome (preferably
  344. ideas about unifications,
  345. generalizations, or extensions).
  346.  
  347. Q. Would you release the source code
  348. as freeware or similar?
  349.  
  350. I would like to, but first I must
  351. get it well formed and perfected
  352. because currently the code is a mess.
  353.  
  354. Q. Do you have any other Commodore
  355. related projects you would be
  356. prepared to tell our readers about?
  357.  
  358. ICU64 is meant to be an all-in-one
  359. project, at least for me and
  360. anything I develop around C64. I
  361. can't imagine a tool for the C64
  362. that couldn't embed with ICU64. One
  363. of the major goals of this project
  364. is to give to the user the full
  365. control over the machine which
  366. means, by definition, that he
  367. shouldn't need any other tool (off
  368. course it's still far from this).
  369.  
  370. Q. For a system considered DEAD, why
  371. do you think there is so much
  372. interest in the Commodore 64 and for
  373. that matter "RETRO" computing in
  374. general?
  375.  
  376. Nostalgia is the major reason why
  377. most users use a retro system
  378. periodically.  Yet, the hackers have
  379. another reason as well: they are
  380. trying to get the maximum from the
  381. minimum (a hacker's principle). The
  382. C64 demo scene is full of creative
  383. hackers who still squeeze the C64
  384. trying to extract the whole
  385. potential of this machine, and
  386. surprising they still continue to
  387. impress us. The best demo I have
  388. seen (Edge of Disgrace) is released
  389. in 2008! So, the C64 is actually
  390. LIVE. And there are a lot of people
  391. that try with their way to keep it
  392. like this (the fate of C64 is on the
  393. hands of its users).
  394.  
  395. On the other hand, compare the C64
  396. with the PC. Which is more "pretty"?
  397. The components of the C64 are chosen
  398. carefully to provide the maximum
  399. potential with the minimum cost.
  400. Have you opened a PC to see how much
  401. unnecessary complexity and
  402. redundancy exists there? So, the
  403. MODERN machine is "ugly" and this is
  404. another reason why the hobbyists who
  405. want to study a computer as a
  406. machine would prefer a "pretty"
  407. RETRO one. Note also that the
  408. emulation combines the RETRO with
  409. the MODERN, and my project moves
  410. toward this direction.
  411.  
  412. Q. Do you think emulation will ever
  413. become so perfect we don't need to
  414. keep preserving the "REAL" machines
  415. anymore?
  416.  
  417. Absolutely! It is known that a
  418. computer can simulate the operation
  419. of another computer. The fact that
  420. the current emulators have some
  421. weakness is due to the lack of
  422. detailed specifications and the need
  423. to be hosted on powerful and
  424. flexible real machines. Besides, a
  425. "real machine" is an implementation
  426. of a design which describes an
  427. "ideal machine". And a "virtual
  428. machine" is just another
  429. implementation of the same design.
  430. Which implementation could be closer
  431. to the "ideal"? On the other hand,
  432. if it so important for someone to
  433. touch the thing, I believe that in
  434. few years it will be possible to
  435. "print" the parts and assemble a
  436. real C64, at home!
  437.  
  438. Q. Do you have any comments you
  439. would like to add?
  440.  
  441. I want to thank all the guys who
  442. with their comments helped me to
  443. stay concentrated on the program
  444. during the last summer, so it can
  445. now be made available to all. I hope
  446. that the program will serve as a
  447. good gym for the mind for anyone
  448. trying to figure out how computer
  449. software actually works. Also, I
  450. hope that this project will inspire
  451. more developers to create similar
  452. tools, since there is a big
  453. unexploited potential here.
  454.  
  455. Q. Thanks for working on such a
  456. great piece of software.
  457.  
  458. I'm happy that you like it.
  459.  
  460. Q. For anyone curious or in need of
  461. a demo look at these
  462. http://www.youtube.com/watch?
  463. v=1TdaoOluq0A
  464. http://www.youtube.com/watch?
  465. v=tjcvR5McmSg
  466. I think when our readers see what
  467. the software can do it won't leave
  468. many without that WOW factor this is
  469. the greatest thing I have seen in a
  470. long time, I couldn't begin to think
  471. how you wrote such piece of code
  472. have you had any negative comments?
  473.  
  474. Indeed, there is lots of "WOW" under
  475. the demo video, wherever posted.
  476. However, there are some negative
  477. comments about the background music
  478. (as a kind of noise) and the song
  479. (because it is a little aggressive).
  480. Yet, this is the music on the ending
  481. titles of "The Matrix", and due to
  482. the obvious parallelism between the
  483. program and the movie, this was the
  484. only choice that I had (besides that
  485. I like it!).
  486.  
  487. Q. I see you have quoted something
  488. about "everything is numbers". I
  489. guess most things can be explained
  490. with mathematics, the way trees
  491. form, flowers, snow etc can
  492. EVERYTHING be expressed as a number
  493. or formula?
  494.  
  495. OUR mathematics is applicable
  496. everywhere human logic exists and in
  497. the cases where the human logic is
  498. vanished or banished (e.g. love)
  499. then we can't do anything about.
  500. However, this question touches the
  501. philosophy of science so prepare for
  502. a dive.
  503.  
  504. First, the "everything is numbers"
  505. was a philosophical thesis of
  506. Pythagoreans (over 2500 years ago).
  507. In the virtual world of a digital
  508. computer EVERYTHING is numbers (you
  509. can see it with any debugger). As a
  510. physicist, I think the same thing
  511. for the real world. So far all our
  512. efforts were to try to guess the
  513. laws of the universe using our
  514. classic mathematics and by doing
  515. many physical experiments. But,
  516. could we just see the REAL CODE of
  517. the universe (like Neo in the
  518. Matrix)? The Quantum Computers use
  519. the nature as a mathematical
  520. library, with ignorance about HOW
  521. she does her math. But can we see
  522. HER math? We could debug a quantum
  523. computer but that would violate
  524. fundamental principles of quantum
  525. mechanics. Yet, maybe there is a
  526. chance if we could build a "Quantum
  527. Meta-Machine" (a kind of quantum
  528. emulator on a quantum computer) and
  529. then watch its operation with the
  530. hope that this way we could cheat
  531. the nature. We must just believe in
  532. a more powerful principle that says:
  533. "nothing is impossible".
  534.  
  535. Q. I guess I know why you use the
  536. handle "mathfigure".
  537.  
  538. I guess you guessed right!
  539.  
  540. =====================================
  541.